草庐IT

xcode - 仅公开便利 init 的子类化类

全部标签

c# - 如何从基类中获取子类的 `Type`

我有一个抽象基类,我想在其中实现一个方法来检索继承类的特性属性。像这样的……publicabstractclassMongoEntityBase:IMongoEntity{publicvirtualobjectGetAttributeValue(stringpropertyName)whereT:Attribute{varattribute=(T)typeof(this).GetCustomAttribute(typeof(T));returnattribute!=null?attribute.GetType().GetProperty(propertyName).GetValue(a

c# - 我可以防止继承的虚方法在子类中被覆盖吗?

我有一些类是这样布局的classA{publicvirtualvoidRender(){}}classB:A{publicoverridevoidRender(){//PreparetheobjectforrenderingSpecialRender();//Dosomecleanup}protectedvirtualvoidSpecialRender(){}}classC:B{protectedoverridevoidSpecialRender(){//Dosomecoolstuff}}是否可以在不破坏以下代码的情况下防止C类覆盖Render方法?Aobj=newC();obj.Re

c# - 为什么我需要在泛型子类中重新声明类型约束

最近我尝试通过实现一个泛型接口(interface)来创建一个泛型子类。publicinterfaceIModulewhereT:DataBean{.....}publicclassModule:IModulewhereT:DataBean{....}看来我不能依赖在基本接口(interface)中定义的任何T限制,我需要自己重新申报。MSDN刚刚提供:Whenusingthesubclassgenerictypeparameters,youmustrepeatanyconstraintsstipulatedatthebaseclasslevelatthesubclasslevel.F

c# - “不要公开通用列表”,为什么在方法参数中使用 collection<T> 而不是 list<T>

我正在使用FxCop,它显示“不要公开通用列表”的警告,建议使用Collection而不是List.首选它的原因,我知道所有这些东西,如thisSOpost中所述和MSDN以及我浏览过的更多文章。但我的问题是,我很少有方法可以进行如此繁重的计算,并且方法接受List的参数。就性能而言,这应该更快更好。但是FxCop也为此发出警告。所以一个选择是我应该将参数声明为Collection,然后使用ToList()在方法内部,然后使用它。那么优化了哪一个呢?“抑制这种情况下的警告”或“在参数中使用Collection,然后在方法本身内部使用ToList()”。 最佳

c# - 为什么要将子类对象赋值给父类引用变量?

我有以下代码。publicclassParent{publicvoidPrint(){Console.WriteLine("ParentMethod");}}publicclassChild:Parent{publicnewvoidPrint(){Console.WriteLine("ChildMethod");}}publicclassProgram{publicstaticvoidMain(){ChildC=newChild();C.Print();}}如果我运行这段代码,我会得到结果“ChildMethod”但是,如果我执行以下操作,为什么会得到结果“ParentMethod”?

c# - 检查类型是否可转换/子类

我将两个成员的类型作为字符串-而不是作为Type实例。如何检查这两种类型是否可类型转换?假设字符串一个是“System.Windows.Forms.Label”,另一个是“System.Windows.Forms.Control”。我如何检查第一个是否是第二个的子类(或隐式可转换)?这可以通过使用反射实现吗?感谢您的支持! 最佳答案 您似乎应该使用Type.IsAssignableFrom但请仔细注意文档:publicvirtualboolIsAssignableFrom(Typec)trueifcandthecurrent[ins

c# - 如何使用 Swashbuckle 在 Swagger API 文档/OpenAPI 规范中包含子类?

我在C#中有一个Asp.NetWebAPI5.2项目并使用Swashbuckle生成文档。我有一个包含继承的模型,例如具有来自Animal抽象类的Animal属性以及从它派生的Dog和Cat类。Swashbuckle仅显示Animal类的模式,因此我尝试使用ISchemaFilter(他们也建议这样做)但我无法使其工作,而且我找不到合适的示例。有人可以帮忙吗? 最佳答案 似乎Swashbuckle没有正确实现多态性,我理解作者关于子类作为参数的观点(如果一个Action需要一个Animal类并且如果你用狗对象或猫对象调用它时表现不同

c# - 如何公开 Application.Properties.Settings 并保持这种状态

我正在将我的应用程序设置集中到一个位置,我选择使用我的公共(public)库中的设置集合来完成此操作。我已将所有这些设置移动到它们自己的文件中,该文件使用配置源拉入我的app.config中:这让我可以使用VisualStudio的“添加链接”功能,在我的Web和测试应用程序中使用导入的配置文件覆盖默认库设置。现在,我希望能够从我的其他库中访问所有这些很棒的设置值,并且发现我可以通过公开生成的类来简单地做到这一点:文件:Common.Properties.SettingspublicsealedpartialclassSettings:global::System.Configurat

javascript - window.onload = init(); 有什么区别?和 window.onload = init;

根据我收集到的信息,前者将函数返回语句的实际值分配给onload属性,而后者分配实际函数,并将在窗口加载后运行。但我仍然不确定。感谢任何可以详细说明的人。 最佳答案 window.onload=init();将onload事件分配给执行时从init函数返回的任何内容。init将立即执行,(例如,现在,不是窗口加载完成时)和结果将分配给window.onload。你不太可能想要这个,但以下内容是有效的:functioninit(){varworld="World!";returnfunction(){alert("Hello"+wor

javascript - Facebook init() 的 channelUrl 参数是否已弃用?

我记得FB.init()有一个channelUrl选项,但根据thispage,它似乎不再存在了此功能是否已弃用? 最佳答案 是的,不再需要channelUrl。这是博客文章中的引述:ChangedbrowserrequirementsfortheJavaScriptSDKInorderfortheJavaScriptSDKtobeabletocommunicatewithFacebook,wenowrequireeithernativesupportforHTML5postMessage,orsupportforFlash,min